<?php

namespace app\common\model\Business;

use think\Model;
use traits\model\SoftDelete; //软删除
use app\common\model\Region;

/**
 * 用户模型
 */
class Business extends Model
{
  use SoftDelete;
  // 设置当前模型对应的完整数据表名称（如果你的命名规则和上面的系统约定不符合时才需要设置该属性）
  protected $table = 'pre_business';

  // 开启自动写入时间戳字段 默认时间类型是int，如果是datetime的，那么需要把true改为datetime
  protected $autoWriteTimestamp = true;

  // 定义时间戳字段名 默认创建时间字段为create_time，更新时间字段为update_time
  protected $createTime = 'createtime';

  //  如果不需要更新时间把该属性设置为false
  protected $updateTime = false;
  protected $deleteTime = 'deletetime';

  // 追加数据表不存在的字段
  protected $append = [
    'avatar_text', // 头像
    'gender_text', // 性别
    // 'gender_option',//性别选项
    'deal_text', //成交状态
    'region_text', // 地区
    'auth_text', //认证状态（私海详情使用）
  ];

  /**
   * 定义数据表中不存在的字段的获取器  以get不存在的字段名Attr该规则命名方法名（根据业务需求）
   * @param $value 当前字段的值
   * @param $data 当前的所有数据数组
   */
  public function getAvatarTextAttr($value, $data)
  {
    // $avatar = !empty($data['avatar']) ? $data['avatar'] : '/assets/home/images/avatar.jpg';
    $url = config('site.url');

    $gender = !empty($data['avatar']) ? $url . $data['avatar'] : $url . '/assets/home/images/avatar.jpg';

    return $gender;
  }

  public function getRegionTextAttr($value, $data)
  {

    $region = '';

    $province = Region::where('code', $data['province'])->value('name');

    if ($province) {
      $region = $province;
    }

    $city = Region::where('code', $data['city'])->value('name');

    if ($city) {
      $region .= '-' . $city;
    }

    $district = Region::where('code', $data['district'])->value('name');

    if ($district) {
      $region .= '-' . $district;
    }

    return $region;
  }

  public function getGenderTextAttr($value, $data)
  {
    $list = ["0" => '保密', '1' => '男', '2' => '女'];

    if (!empty($data['gender'])) {
      return $list[$data['gender']];
    }

    return null;
  }

  //性别选项列表
  public function getGenderOptionAttr()
  {
    $list = ["0" => '保密', '1' => '男', '2' => '女'];
    return $list;
  }

  public function getDealTextAttr($value, $data)
  {
    $list = ["0" => '未成交', '1' => '已成交'];

    if (!empty($data['deal']) || $data['deal'] == '0') {
      return $list[$data['deal']];
    }
    return null;
  }

  public function getAuthTextAttr($value, $data)
  {
    $list = ["0" => '未认证', '1' => '已认证'];

    return $list[$data['auth']];
  }

  public function source()
  {
    return $this->belongsTo('app\common\model\Business\Source', 'sourceid', 'id', [], 'LEFT')->setEagerlyType(0);
  }
}
